package com.quxiang.pay.controller;

import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * controller基类，做统一异常处理 异常处理的方法必须与出错的方法在同一个Controller
 */
public abstract class BaseController<T> {
	protected final Logger log = LoggerFactory.getLogger(getClass());

	/**
	 * 异常处理。
	 * 
	 * @param request
	 *            HTTP请求
	 * @param ex
	 *            异常
	 * @return 返回异常视图。
	 */
	@ExceptionHandler(value = { BindException.class,Exception.class })
	@ResponseBody
	protected T  handlerException(HttpServletRequest request, Exception ex) {
		
		
		return null;
	}

	/**
	 * 记录接口异常日志。
	 * 
	 * @param request
	 *            HTTP请求
	 * @param reply
	 *            响应对象
	 * @param ex
	 *            异常
	 */
	protected void logError(HttpServletRequest request,
	        Exception ex) {
		}
	}
		